package servlet;

import java.io.IOException;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.Cookie;
import bean.UserBean;


public class Authenticate extends HttpServlet
{

	private static final long serialVersionUID = 2353330954378917668L;

    //HTTP Get redirige sur HTTP Post
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
            IOException {
        doPost(request,response);
    }

    //HTTP Post
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
    	
    	// On supprime l'utilisateur connecté (s'il existe)
    	HttpSession session = request.getSession();
    	session.removeAttribute("validUser");

    	// On vérifie que les parametres de connexion sont présents
    	if (request.getParameter("userName").length() == 0 || request.getParameter("password").length() == 0)
		{
    		response.sendRedirect("login.jsp?errorMsg=Veuillez saisir un nom d'utilisateur et un mot de passe.");
		}
    	else
    	{

	    	util.UtilBDD BDD = new util.UtilBDD();
	    	BDD.init();
	    	String Req =
	    	" SELECT [user_id],[user_name],[user_tel],[user_mail],[user_role],[user_lvl_notif],[user_pwd]"+
	    	" FROM [OVS].[dbo].[User]"+
	    	" WHERE user_login = '" + request.getParameter("userName")+"'"+
	    	" AND user_pwd = '" + request.getParameter("password")+"'";

	    	ResultSet rs = null;

	    	try
	    	{
	    		rs = BDD.ExecuteSelect(1,Req);
	    		if (!rs.next())
	    		{
	    			BDD.close();
	    			response.sendRedirect("login.jsp?errorMsg=La combinaison du nom d'utilisateur et du mot de passe n'est pas valide.");
	    		}
	    		else
	    		{
	    			rs.first();

	    			bean.UserBean validUser = new UserBean();
	    			validUser.setNom(rs.getString("user_name"));
	    			validUser.setLevel(rs.getString("user_lvl_notif"));
	    			

	    			// Mise en session de l'objet validUser
	    			session.setAttribute("validUser", validUser);

	    			if (request.getParameter("idAlerte")!= null && request.getParameter("idAlerte").length() > 0 )
	    			{
	    				
	    	    		response.sendRedirect("LectureAlerte?idAlerte="+request.getParameter("idAlerte"));
	    			}
	    			else
	    			{
	    				//Code 
	    				//response.sendRedirect("tableauBord.jsp");
	    				response.sendRedirect("ListeAlertes");
	    			}
	    			
					rs.close();
					BDD.close();


					
					

			     }
	    	}
	    	catch (Exception e)
	    	{
	    		e.printStackTrace();
	    		response.sendRedirect("login.jsp?errorMsg=Une erreur s'est produite lors de votre authentification...");
	    	}
    	
    	}
    }
    
}
